This page presents plans for a version of the linkage underlying the strandbeest constructed in LEGO Mindstorms. Those of us near the Exploratorium had the opportunity to see these devices in person during an exhibit a few years ago. For anyone who has yet to see these wondrous creations, here is a medley from the creator:

The magic of the eerie movement results from a precise tuning of the connected lengths in the linkage comprising the legs. Here is an image from Wikipedia labeling the lengths in the linkage:

The numeric values are called “holy numbers” by Jansen. He arrived at them by an evolutionary method briefly described here.

The challenge in translating the linkage into LEGOs is that all distances must be integer approximations to the holy numbers, since the holes along LEGO Technic beams occur in integral steps. There are then two different approaches that can then be taken: either starting from the smallest length upward in the approximation or from the longest length downward.

For the first approach, the shortest length in the linkage is the one labeled l. Since it is a vertical offset it can easily be taken to be 1M (“M” is LEGO-speak for the basic unit of measure) by stacking two Technic beams: the beams are each 1M across, so the distance between centers of holes in adjacent beams is also 1M.

Dividing all of the holy numbers by the length of l gives

The normalized values differ greatly from integers in five cases, so a choice has to be made as to the direction in which each of these five will be adjusted. There is some trial and error in this, but it does make a certain amount of sense to keep lengths h and k equal. The remaining adjustments correspond to what fits mostly easily given the flexibility of LEGO beams.


The second approach to building the linkage is to assign the longest length to an integer of eight or greater, since that is the approximate ratio between h and l. The longest Technic beam is 15M, which corresponds to a length between the centers of farthest holes of 14M. Use the dropdown list to select integers between fourteen and eight:

Length of h:  

The linkage based on setting the length of l to unity had five half-integer differences from integers. A linkage using longer lengths is only likely to be closer to the accurate holy numbers if the number of half-integer differences is less than five. This occurs for two cases: for h equal to thirteen there are four half-integer differences, and for h exactly equal to eight there are only three half-integer differences.

One can repeat the process setting the length of k equal to successive integers from fourteen down to eight:

Length of k:  

This time around there are no better choices compared to taking the length of l equal to unity. In fact setting k exactly to eight reproduces that initial choice for the build.

The second approach should thus take h = 8 and scale lengths accordingly:

Adjustments for the three half-integer differences again correspond to what fits mostly easily given the flexibility of LEGO beams. Only two lengths, those of b and j, are different from the first approach.


For the actual building, lengths along beams are counted from the center of one hole to the center of another: the number of holes involved is always one more than the length. Given that the size of LEGO Mindstorms motors is about the same as one linkage, it seems most efficient to construct the linkages in pairs, each of which is driven from one side of the motor or the other. Here are the specific builds for each part of the strandbeest:

Central Body:body.lxf
Linkage - First Approach:linkage1.lxf
Linkage - Second Approach:linkage2.lxf

These files are LEGO Digital Designer files, and the software to open them is available on the LEGO website. LEGO is sadly no longer actively supporting this product. An alternative is the open-source LDraw ecosystem.


Uploaded 2020.04.12 analyticphysics.com